package com.rybbaby.tss.platform.sysAdminUser.service;


import com.rybbaby.tss.core.web.service.IBaseService;
import com.rybbaby.tss.platform.sysAdminUser.entity.SysAdminUser;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * @author 谢进伟
 * @description 管理员基本信息数据库操作服务接口
 * @createDate 2016-11-22 下午1:36:42
 */
public interface ISysAdminUserService extends IBaseService<SysAdminUser> {

    /**
     * @param entity         实体对象
     * @param sessionId      会话Id
     * @param loginUserId    等你用户Id
     * @param fileRelevances 文件关联设置,格式：groupName1=>fieldName1=cacheFileId1,groupName2=>
     * @throws Exception
     */
    public abstract Serializable save(SysAdminUser entity, String sessionId, String loginUserId, String... fileRelevances) throws Exception;

    /**
     * @param entity         实体对象
     * @param sessionId      会话Id
     * @param loginUserId    等你用户Id
     * @param fileRelevances 文件关联设置,格式：groupName1=>fieldName1=cacheFileId1,groupName2=>
     * @throws Exception
     */
    public abstract void updateEntitiy(SysAdminUser entity, String sessionId, String loginUserId, String delteFileIds, String... fileRelevances) throws Exception;

    /**
     * 用户上线
     *
     * @param entity    用户
     * @param sessionId 会话Id
     */
    public abstract void onLine(SysAdminUser entity, String sessionId);

    /**
     * 用户离线
     *
     * @param entity 用户
     */
    public abstract void offLine(SysAdminUser entity);

    /**
     * 员工停用启用功能
     * @param targetDateId
     * @param isForbidden
     * @return
     */
    public Integer updateIsForbidden(String targetDateId,Boolean isForbidden);

    /**
     * 查寻所有数据集合
     * */
    List<SysAdminUser> getAllList();

    List<SysAdminUser> findListByIds(List<String> ids);


    /**
     * 根据职务查询员工信息
     * @param duty
     * @return
     */
   List<SysAdminUser> getPostListByDuty(Integer duty,String schoolId) throws Exception;

    /**
     * 根据账号密码查询
     * @param userName
     * @param password
     * @return
     */
    List<SysAdminUser> findByUserNamePassWord(String userName, String password) throws Exception;

    /**
     * 根据用户名查询用户
     * @param userName
     * @return
     */
    List<SysAdminUser> findByuserName(String userName) throws Exception;

    /**
     * 根据用户查询园所编码
     * @param adminUserId
     * @return
     */
    Map<String, Object> findSchoolCode(String adminUserId);
}
